﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using Negocio;
using Negocio.catalogos;
using Negocio.servicioCarrera;
using Negocio.clases_tontas;
using Microsoft.Reporting.WebForms;

namespace Presentacion.controlasistencia
{
    public partial class reporteMensualComision : System.Web.UI.Page
    {       catalogoCarrera _objCarrera = new catalogoCarrera();
            catalogoPeriodo _objPeriodo = new catalogoPeriodo();
            catalogoDistribucion _objDistribucion = new catalogoDistribucion();
            catalogoDocente _objDocente = new catalogoDocente();
            catalogoReporte _objReporte = new catalogoReporte();
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                if (Session["admin"]!=null || Session["Vicerrectorado"] != null)
                {
                    foreach (var item in _objCarrera.obtenerTodasCarreras())
                    {
                        ddlCarrera.Items.Add(new ListItem(item.carrera,item.idCarrera.ToString()));
                    }
                    ddlPeriodo.Items.Add(new ListItem("Seleccione periodo.", ""));
                    foreach (var item in _objPeriodo.obtenerPeriodoxTOP().OrderByDescending(C=>C.idPeriodo))
                    {
                        ddlPeriodo.Items.Add(new ListItem(item.nombre, item.idPeriodo.ToString()));
                    }
                    ReportViewer1.Visible = false;
                }
            }
        }
        #region Generar Reporte
        protected void generar_Click(object sender, EventArgs e)
        {
            if (Request.Form["ddlReporteMeses"].ToString()!="")
            {
                var split = Request.Form["ddlReporteMeses"].ToString().Split(new Char[] { '-'});
                int mes = Convert.ToInt32(split[0]);
                int anio = Convert.ToInt32(split[1]);
                var lista = _objReporte.consultarReporteMensualRegistro(Convert.ToInt32(ddlPeriodo.SelectedValue),mes,anio, Convert.ToInt32(ddlCarrera.SelectedValue), Convert.ToInt32(ddlSemestre.SelectedValue));
                
                ReportParameter[] reportParameter = new ReportParameter[5];
                reportParameter[0] = new ReportParameter("semestre", ddlSemestre.SelectedValue);
                reportParameter[1] = new ReportParameter("paralelo", "A");
                reportParameter[2] = new ReportParameter("periodo", ddlPeriodo.SelectedItem.Text);
                reportParameter[3] = new ReportParameter("mes", hdMes.Value);
                reportParameter[4] = new ReportParameter("carrera", ddlCarrera.SelectedItem.Text);
                ReportViewer1.LocalReport.DataSources.Clear();

                ReportDataSource dataSourceAsistencia = new ReportDataSource();

                dataSourceAsistencia.Name = "dtsComisionMensual";
                dataSourceAsistencia.Value = lista;

                ReportViewer1.LocalReport.DataSources.Add(dataSourceAsistencia);

                ReportViewer1.LocalReport.ReportEmbeddedResource = "Presentacion.controlasistencia.reports.reportComisionMensual.rdlc";
                ReportViewer1.LocalReport.ReportPath = "controlasistencia/reports/reportComisionMensual.rdlc";

                ReportViewer1.LocalReport.SetParameters(reportParameter);
                var parame = ReportViewer1.LocalReport.GetParameters();
                ReportViewer1.Visible = true;
                ReportViewer1.DataBind();
                ReportViewer1.LocalReport.Refresh();
            }
            else
            {
                ClientScript.RegisterStartupScript(GetType(), "jsMensaje", "javascript:errorMessage('Debe de elegir un mes.');", true);
            }
           

        }
        #endregion
    }
}